上篇文章提到我們團隊是如何使用 macro 來在 dbt 上開發 BQ UDF,雖然有達到目的,但使用 macro 開發也有以下幾個缺點:
在後續繼續研究解法時,我們想到能否使用 model 來開發 UDF,如果使用 model 應該就能解決以上問題,但後來意外發現 dbt 的 materialization,就能使用 model 開發 UDF!
dbt materialization 是將 models 實現在資料倉儲中的策略,定義了 dbt 模型如何在數據庫中被實現。官方預設有 5 種 materialization,常見的有 table, view, incremental:
除了官方預設的 materialization,也可以自行創建 materialization,dbt 官方也有出教學介紹。
在下一篇將會詳細介紹 dbt 教學中是如何一步一步的建立 materialization。